$(function(){
	
	$('#dg').datagrid({
		onSelect: function(rowIndex,rowData){//选中一行时
			var checkRow = $("#dg").datagrid("getSelections");//获取所有选中选项
//			console.log("数组长度"+checkRow.length);
			if(checkRow.length>1){
				$("#toEdit").linkbutton({	//变为禁用
					disabled:true
				});
				$("#del").linkbutton({ //变为禁用
					disabled:true
				});
				$("#releateRole").linkbutton({	//变为禁用
					disabled:true
				});
				$("#reset").linkbutton({ //变为禁用
					disabled:true
				});
			}
		},
		onUnselect: function(rowIndex,rowData){//取消选中一行时
			var checkRow = $("#dg").datagrid("getSelections");
//			console.log("数组长度"+checkRow.length);
			if(checkRow.length<=1){
				$("#toEdit").linkbutton({
					disabled:false
				});
				$("#del").linkbutton({
					disabled:false
				});
				$("#releateRole").linkbutton({	//变为启用
					disabled:false
				});
				$("#reset").linkbutton({ //变为启用
					disabled:false
				});
			}
		},
		onSelectAll:function(rows){//全选中
			$("#toEdit").linkbutton({
				disabled:true
			});
			$("#del").linkbutton({
				disabled:true
			});
			$("#releateRole").linkbutton({	//变为禁用
				disabled:true
			});
			$("#reset").linkbutton({ //变为禁用
				disabled:true
			});
		},
		onUnselectAll:function(rows){//取消全选中
			$("#toEdit").linkbutton({
				disabled:false
			});
			$("#del").linkbutton({
				disabled:false
			});
			$("#releateRole").linkbutton({	//变为启用
				disabled:false
			});
			$("#reset").linkbutton({ //变为启用
				disabled:false
			});
		}
	});
	
	//取数据
	 var pager=$('#dg').datagrid('getPager');
	 pager.pagination({
        total:0,
        rows : 0,
        pageNumber : 1,
        pageList : [10,20,30],// 可以设置每页记录条数的列表
        onBeforeRefresh: function () {  
        },  
        onSelectPage: function (pageNumber, pageSize) {//分页触发  
            find(pageNumber, pageSize);  //当前页，每页数目
        }
    });
	//默认加载1到10的数据 
	find(1,10);
		
	//初始化角色下拉框
	$.ajax({
		url:"../user/getRoleList",
		type:"get",
		async:true,
		contentType:"application/json",
		dataType:'json',
		success:function(data,textStatus,jqXHR){
			$('#role').combobox({
			    valueField:'id',
			    textField:'roleName',
			    editable:false
			});
			$("#role").combobox("loadData",data.dataList);
		},
		 error:function(xhr,textStatus){
			 $("#dg").datagrid("loaded"); //移除屏蔽
			 $.messager.alert('操作提示', '请求出错！', 'error');
		 }
	});
});

//全局变量
var editMethod = 'PUT';

/**
 * 方法描述：分页查询
 * @param pageNumber 当前页 
 * @param pageSize 每页显示条数
 * */
function find(pageNumber, pageSize){
     $("#dg").datagrid('getPager').pagination({pageSize : pageSize, pageNumber : pageNumber});//重置
     $("#dg").datagrid("loading"); //加屏蔽
     var start = (pageNumber-1)*pageSize;
     if(start<0){
    	 start = 0;
     }
     $.ajax({
         type : "get",
         dataType : "json",
         url : "../user/list",
         contentType: "application/x-www-form-urlencoded;charset=utf-8", 
         data : {
        	 'currentPage' : pageNumber,	//当前页
             'showCount' : pageSize,		//每页显示条数
             'currentResult' : start,		//当前记录起始索引
             'keyWord' :　$("#keyWord").val()
         },
         success : function(data) {
             $("#dg").datagrid('loadData',pageData(data.dataList,data.total));//这里的pageData是我自己创建的一个对象，用来封装获取的总条数，和数据，data.rows是我在控制器里面添加的一个map集合的键的名称
             var total =data.total;
             $("#dg").datagrid("loaded"); //移除屏蔽
         },
         error : function(err) {
             $.messager.alert('操作提示', '获取信息失败...请联系管理员!', 'error');
             $("#dg").datagrid("loaded"); //移除屏蔽
         }
     });
 }

//封装分页数据
function pageData(list,total){
    var obj=new Object();
    obj.total=total;
    obj.rows=list;
    return obj;
}

//搜索
function _search(){
	var options = $('#dg').datagrid('getPager').data("pagination").options;  
	var page = options.pageNumber;//当前页数  
	var rows = options.pageSize;//每页的记录数（行数）  
	find(page,rows);
}

//重置条件
function reset(){
	$("#keyWord").val("");
	var options = $('#dg').datagrid('getPager').data("pagination").options;  
	var page = options.pageNumber;//当前页数  
	var rows = options.pageSize;//每页的记录数（行数）  
	find(page,rows);
}

//打开新增窗口
function toAdd(){
	editMethod = 'POST'; 
	$("#userAccount").attr('readonly',false);
	$("#tr_password").show();
	$("#fm").form("clear");
	$("#win").window("open").window("setTitle","新增");
} 

//打卡编辑窗口
function toEdit(){
	var	row	= $('#dg').datagrid('getSelected');
	if(row){
		$("#win").window("open").window("setTitle","修改");
		$("#userAccount").attr('readonly',true);
		$("#tr_password").hide();
		$("#fm").form("clear");
		$('#fm').form('load',row);
		editMethod = "PUT";
	}else{
		$.messager.alert('操作提示','需要选择一条数据进行修改。',"info");
	}
}

//保存用户
function save(){
	//表单校验
	if(""==$('#userName').val()){
		$.messager.alert('操作提示','用户名称不能为空。',"info");
		return ;
	}
	if(""==$('#userAccount').val()){
		$.messager.alert('操作提示','用户账号不能为空。',"info");
		return ;
	}
	if(""==$('#id').val()&&""==$('#userPassword').val()){
		$.messager.alert('操作提示','用户密码不能为空。',"info");
		return ;
	}
	var formData = { 
			id:$('#id').val(), 
			userName:$('#userName').val(), 
			userAccount:$('#userAccount').val(), 
			userPassword:$('#userPassword').val(),
			userRemark:$("#userRemark").val()
	};
	$.ajax({
		url:"../user",
		type:editMethod,
		async:true,
		contentType:"application/json",
		data:JSON.stringify(formData),
		dataType:'json',
		success:function(data,textStatus,jqXHR){
			if(data.success==true){
				$('#win').window('close');
				var options = $('#dg').datagrid('getPager').data("pagination").options;  
				var page = options.pageNumber;//当前页数  
				var rows = options.pageSize;//每页的记录数（行数）  
				$.messager.alert('操作提示', '保存成功！', 'info');
				find(page,rows);
			}else{
				$.messager.alert('操作提示',data.error,"info");
			}
			
		},
		 error:function(xhr,textStatus){
			 $.messager.alert('操作提示','保存出错.'+textStatus,"error");
		 }
	});
}

//删除用户
function del(){
	var row = $('#dg').datagrid('getSelected');
	if(row){
		$.messager.confirm('确认','要删除此记录吗?',function(r){
			if(r){
				$("#dg").datagrid("loading"); //加屏蔽
				var formData = { 
						id:row.id
				};
				$.ajax({
					url:"../user",
					type:"delete",
					async:true,
					contentType:"application/json",
					data:JSON.stringify(formData),
					dataType:'json',
					success:function(data,textStatus,jqXHR){
						if(data.success==true){
							$.messager.alert('操作提示', '删除成功！', 'info');
						}else{
							$.messager.alert('操作提示', '删除出错！', 'error');
						}
						var options = $('#dg').datagrid('getPager').data("pagination").options;  
						var page = options.pageNumber;//当前页数  
						var rows = options.pageSize;//每页的记录数（行数）  
						find(page,rows);
					},
					 error:function(xhr,textStatus){
						 $.messager.alert('操作提示', '请求出错！', 'error');
					 }
				});
			}
		});
	}
}

//导出Excel数据
function ext(){
	window.location.href='../user/exportExcel';
}

//批量删除
function delAll(){
	var row = $('#dg').datagrid('getSelected');
	if(row){
		$.messager.confirm('确认','要删除这些记录吗?',function(r){
			if(r){
				var DATA_IDS = $('#dg').datagrid('getChecked');
				var dataStr = "";
				for(var i=0;i<DATA_IDS.length;i++){
					if(i==0){
						dataStr += DATA_IDS[i].id;
					}else{
						dataStr += "," + DATA_IDS[i].id;
					}
				}
				var formData = { 
						DATA_IDS : dataStr
				};
				$.ajax({
					url:"../user/deleteAll",
					type:"delete",
					async:true,
					contentType:"application/json",
					data:JSON.stringify(formData),
					dataType:'json',
					success:function(data,textStatus,jqXHR){
						if(data.success==true){
							$.messager.alert('操作提示', '删除成功！', 'info');
						}else{
							$.messager.alert('操作提示', '删除出错！', 'error');
						}
						$("#dg").datagrid("loaded"); //移除屏蔽
						var options = $('#dg').datagrid('getPager').data("pagination").options;  
						var page = options.pageNumber;//当前页数  
						var rows = options.pageSize;//每页的记录数（行数）  
						find(page,rows);
					},
					 error:function(xhr,textStatus){
						 $("#dg").datagrid("loaded"); //移除屏蔽
						 $.messager.alert('操作提示', '请求出错！', 'error');
					 }
				});
			}
		});
	}
}

//打开窗口分配角色
function openReleateRole(){
	var row = $('#dg').datagrid('getSelected');
	if(row){
		//获取该用户的角色数据
		$.ajax({
			url:"../user/getUserRoleByUserId",
			type:"get",
			async:true,
			contentType:"application/json",
			data:{
				userId:row.id
			},
			dataType:'json',
			success:function(data,textStatus,jqXHR){
				if(data.dataList.length>0){
					$("#role").combobox("select",data.dataList[0].roleId);
				}else{
					$("#role").combobox("setValue","");
				}
				$("#releateRoleWin").window("open").window("setTitle","分配角色");
			},
			 error:function(xhr,textStatus){
				 $("#dg").datagrid("loaded"); //移除屏蔽
				 $.messager.alert('操作提示', '请求出错！', 'error');
			 }
		});
	}else{
		$.messager.alert('操作提示','需要选择一条数据进行分配角色。',"info");
	}
}


//保存角色
function saveRole(){
	var row = $('#dg').datagrid('getSelected');
	var userId = row.id;
	var roleId = $('#role').combobox("getValue");
	if(""==userId || ""==roleId){
		$.messager.alert('操作提示','请选择角色。',"info");
		return ;
	}
	var formData = { 
			userId:userId, 
			roleId:$('#role').combobox("getValue")
	};
	$.ajax({
		url:"../user/saveUserRole",
		type:"POST",
		async:true,
		contentType:"application/json",
		data:JSON.stringify(formData),
		dataType:'json',
		success:function(data,textStatus,jqXHR){
			$("#releateRoleWin").window("close")
		},
		 error:function(xhr,textStatus){
			 $("#dg").datagrid("loaded"); //移除屏蔽
			 $.messager.alert('操作提示', '请求出错！', 'error');
		 }
	});
}

//打开用户密码重设窗口
function openResetPassword(){
	var	row	= $('#dg').datagrid('getSelected');
	if(row){
		$("#resetPasswordWin").window("open").window("setTitle","修改");
	}else{
		$.messager.alert('操作提示','需要选择一条数据进行修改。',"info");
	}
}

//用户密码重设
function resetPassword(){
	if(""==$("#reset_password").val()){
		$.messager.alert('操作提示','用户密码不能为空。',"info");
		return ;
	}
	var row = $('#dg').datagrid('getSelected');
	var formData = { 
		id:row.id, 
		userAccount:row.userAccount,
		userPassword:$("#reset_password").val()
	};
	$("#dg").datagrid("loading"); //加屏蔽
	$.ajax({
		url:"../user/updatePassword",
		type:"PUT",
		async:true,
		contentType:"application/json",
		data:JSON.stringify(formData),
		dataType:'json',
		success:function(data,textStatus,jqXHR){
			$("#dg").datagrid("loaded"); //移除屏蔽
			if(data.success==true){
				$("#resetPasswordWin").window("close")
				$.messager.alert('操作提示', '操作成功！', 'info');
			}else{
				$.messager.alert('操作提示', data.error, 'info');
			}
		},
		 error:function(xhr,textStatus){
			 $("#dg").datagrid("loaded"); //移除屏蔽
			 $.messager.alert('操作提示', '请求出错！', 'error');
		 }
	});
}
